class Boy {
  @speak('永年话')
  run () {
    console.log('I can running')
    console.log('I can speak ' + this.language) // I can speak 永年话
  }
}

function speak(language){
  return function(target, key, descriptor){
    console.log(target) // Boy{}
    console.log(key) // run
    console.log(descriptor)
    target.language = language
    // { value: [Function: run], writable: true, enumerable: false, configurable: true }
    return descriptor
  }
}

const luke = new Boy()
luke.run()